/**
 * 2010(c) Copyright Oceansoft Information System Co.,LTD. All rights reserved.
 * <p>
 * Compile: JDK 1.6+
 * <p>
 * 版权所有(C)：江苏欧索软件有限公司
 * <p>
 * 公司名称：江苏欧索软件有限公司
 * <p>
 * 公司地址：中国苏州科技城青山路1号
 * <p>
 * 网址: http://www.oceansoft.com.cn
 * <p>
 * 版本: 苏州公安统一用户管理平台1.0
 * <p>
 * 作者: 090922(陈伟)
 * <p>
 * 文件名:SearchUtil.java
 * <p>
 * 类产生时间: 2012-8-2 上午10:04:57
 * <p>
 * 负责人: 090922(陈伟)
 * <p>
 * Email:javacspring@gmail.com
 * <p>
 * 所在组 : 苏州公安统一用户管理平台
 * <p>
 * 所在部门: 电信/国土——技术二部
 * <p>
 * <p>
 */
package com.oceansoft.core.common.util;

import java.util.ArrayList;

/**
 * 搜索关键词处理<br>
 * 多个关键字之间用空格进行分割,连接多个空格则会被过滤
 * 
 * @author chenw
 * 
 */
public class SearchUtil {

	public static String[] splitKeyWords(String keywords) {
		ArrayList<String> _tmplist = new ArrayList<String>();
		String[] _tmp = keywords.split(" ");
		for (String _words : _tmp) {
			String _str = _words.replace("/(^\\s*)|(\\s*$)/g", "");
			if (0 < _str.length()) {
				_tmplist.add(_str);
			}
		}
		return _tmplist.toArray(new String[0]);
	}

	public static void main(String[] args) {
		String sql = generSearchSQL("key words", "中国人 核力量 hell ketty <> & and 1=1 234343  ");
		System.out.println(sql);
	}

	public static String generSearchSQL(String keywordColumn, String searchWords) {
		return generSearchSQL(keywordColumn, splitKeyWords(searchWords));
	}

	public static String generSearchSQL(String keywordColumn, String[] words) {
		StringBuffer sb = new StringBuffer();
		int _i = 0;
		int _j = words.length;
		String _c = keywordColumn.replaceAll(" ", "").toUpperCase();
		for (String _w : words) {
			sb.append("0 <> REGEXP_INSTR(").append(_c).append(", '").append(_w).append("')");
			if (_i < _j - 1) {
				sb.append(" AND ");
			}
			_i++;
		}
		return sb.toString();
	}
}
